class Stack:
    """
    定义一个栈类

    该类包含以下方法：
    - __init__: 初始化栈
    - push: 入栈操作
    - pop: 出栈操作
    - peek: 查看栈顶元素
    - isEmpty: 判断栈是否为空
    """
    def __init__(self):
        """
        初始化栈
        创建一个空列表 items 来存储栈中的元素，并将栈顶元素初始化为 None
        """
        self.items = []
        self.top = None

    def push(self, item):
        """
        将元素压入栈顶

        参数：
        - item: 要压入栈顶的元素

        操作：
        - 将 item 添加到 items 列表的末尾
        - 更新栈顶元素为 item
        """
        self.items.append(item)
        self.top = item

    def pop(self):
        """
        弹出栈顶元素

        返回值：
        - 弹出的栈顶元素

        异常：
        - 如果栈为空，抛出 "Stack is empty" 异常
        """
        if len(self.items) == 0:
            raise Exception("Stack is empty")
        return self.items.pop()

    def peek(self):
        """
        查看栈顶元素

        返回值：
        - 栈顶元素
        """
        return self.items[len(self.items) - 1]

    def isEmpty(self):
        """
        判断栈是否为空

        返回值：
        - 如果栈为空，返回 True；否则返回 False
        """
        return len(self.items) == 0



def matching_parentheses(parentheses_string):
    """
    检查给定字符串中的括号是否匹配

    参数：
    - parentheses_string: 要检查的字符串

    返回值：
    - 如果括号匹配，返回 True；否则返回 False
    """
    # 创建一个临时栈来存储左括号
    temp_stack = Stack()

    # 遍历字符串中的每个字符
    for char in parentheses_string:
        # 如果字符是左括号，将其压入栈中
        if char in '([{':
            temp_stack.push(char)
        # 如果字符是右括号
        elif char in ')]}':
            # 如果栈为空，说明没有匹配的左括号，返回 False
            if temp_stack.isEmpty():
                return False
            # 弹出栈顶元素
            top = temp_stack.pop()
            # 如果弹出的左括号与当前右括号不匹配，返回 False
            if (char == ')' and top != '(') or (char == ']' and top != '[') or (char == '}' and top != '{'):
                return False

    # 如果栈为空，说明所有括号都匹配，返回 True；否则返回 False
    return temp_stack.isEmpty()

# 测试代码
print(matching_parentheses(')'))         # False
print(matching_parentheses('()'))        # True
print(matching_parentheses('{()[()]}{}')) # True
print(matching_parentheses('()[]{(}'))   # False
print(matching_parentheses('())[]{}'))   # False